memsup: prefer platform-specifc used memory calculation over sysconf #10030
+13
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes an issue where the
system_memory_high_watermarkalarm was being set on Linux sinceget_basic_memwas using the less accurate sysconf strategy. Despite the comments,__SC_AVPHYS_PAGESis defined in glibc (but not musl libc).Here's an example from before the change.
memsup:get_memory_data()calls the Cget_basic_memfunction. The second element in the return tuple is the used memory (~222 MB) that it was reporting. It should have returned ~140 MB (254 MB - 114 MB) which also would not have set thesystem_memory_high_watermarkalarm.For consistency, the
__SC_AVPHYS_PAGEScheck is done after the platform-specific checks in both places.